The present invention relates generally to an arrangement of a mass memory storage peripheral computer device and method for operating a mass memory storage peripheral computer device, and more particularly to a method and arrangement for operating a mass memory storage peripheral computer device such as a hard disk drive connected to a host computer using a peripheral bus.
Pending U.S. patent application Ser. No. 08/553,024 is incorporated by reference in its entirety.
During the development of the personal computer industry, the typical arrangements for operating a hard disk drive connected to a host computer have gone through a series of evolutions. When the personal computer was first developed, it was assumed that hard disk drives would be divided into cylinders, heads, and sectors which would clearly define each data sector in which information could be stored on the hard disk drive. Each of these data sectors could be directly addressed, however, operating systems and application programs needed a higher level method of addressing data being stored. Application programs work with data in the form of files. A file typically has a name associated with it, a size, the date it was created, the date it was last modified, etc.
When an application program reads or writes data from one of its files, it manipulates that file as if all of the data associated with that file is stored together. When an application program needs to open a file it does so by specifying the name of the file to the operating system. The operating system is responsible for taking the file name request from the application program and figuring out what sector or sectors on the mass storage device the file data is stored in. Operating systems perform this function through the use of file systems. A file system is a logical mapping of file names to the physical sectors on a mass storage device that the files data is stored in. The DOS operating system defined one such file system called the FAT 16 file system.
The FAT 16 file system uses a small portion of the physical storage space of a mass storage device to store the mapping information that allows the DOS operating system to find where data associated with a particular file is physically located on the mass storage device.
The FAT 16 file system consists of several parts. When a hard disk drive is initially setup for use within a computer it must first be partitioned. Part of this partitioning process is to create a Master Boot Record which divides the disk into one or more distinct areas. Inside the Master Boot Record there are pointers to each of these areas. The pointers typically specify the physical cylinder, head and sector that is the first sector for each defined area.
The operating system is responsible for setting up each one of these areas by defining, creating and storing the file system data that will be used to manage each particular partition on the disk. The file system data is typically created and written to the disk during the format process. During the format process for the FAT 16 file system, additional data is written to the disk. The first is the Boot Record for the partition. The Boot Record contains information about the file system being used in the current partition. For the FAT 16 file system it contains such information as the number of bytes per sector, the number of sectors per cluster, the number of copies of the FAT table, maximum number of root directory entries, the number of sectors used for each copy of the FAT table, etc. This information is the foundation of the file system being used in the current partition. It should be understood that there are many different types of file systems and the types of data stored in a particular file systems Boot Record could vary.
The next element stored on the disk for the FAT 16 file system is the File Allocation Tables (FAT). This table represents a grouping of sectors into what is called clusters. A Cluster is the minimum amount of space that can be allocated to any particular file. Furthermore, if more than one cluster is required then additional space is allocated one cluster at a time. Clusters are used to allocate space on the disk so that a pointer does not have to be maintained in a File Allocation Table like structure to chain individual sectors of a file together. Clusters make the management of file data more manageable.
The final element stored on the disk for the FAT 16 file system is the Directory Structure. The Directory structure is a table of entries that contains the files name along with information about when that file was created, how big the file is, the name of the file, along with the starting cluster for the file. The operating system will look through the Directory structure for a match on a file name. Once a match is found, the operating system can look to see what the starting cluster is and therefore where the actual data for the file starts at on the disk. Typically, all of this file system data, Boot Records, Directory Tables, Clusters, etc. are used by the operating system to keep track of reading and writing file data from the disk. Typically these are stored on the disk itself and the operating system reads and writes this data as necessary to manage its files stored on the disk.
Additionally, there are many other types of computer systems running UNIX, NetWare, or one of several other single-user or multi-user operating systems that have many different types of file systems. While each of these system may store and use different types of data for its particular file system, the overall concept is the same. The application programs make requests to open file with a file name. The operating system reads its specific file system data by using the file name provided by the application program to look up where that file starts on the disk. This information is still stored on the disk on a portion of the disks storage media, and is read by the operating system as it is needed in order to operate on files that are stored on that disk.
Referring to FIG. 1, a typical current computer system, generally indicated by reference numeral 10, includes an IDE hard disk drive, and a hard disk drive connected to the system using a SCSI adapter card and a PCI bus will be described. As shown in FIG. 1, system 10 includes a host computer module 12 referred to in the specification and claims as a host computer having system BIOS ROM 13 and system RAM 14. The system is operated using a system BIOS 15 and a translating BIOS 11 which are stored within system BIOS ROM 13. A host bridge 16 connects the host computer 12 to a ISA bus 17 and a PCI bus 18. A first hard disk drive 19 is connected to the ISA bus 17 using ribbon cable 20. Drive 19 includes disk drive firmware 21 stored on ROM 22 and disk drive controller 23 for controlling the operation of disk drive 19. A peripheral device in the form of a SCSI adapter card 24 is connected to the PCI bus 18 and includes a protocol translator 25 for translating all communications passing through the SCSI adapter card 24 between the PCI protocol of the PCI bus and the protocol of the adapter card, in this case SCSI protocol. Adapter card 24 also includes expansion BIOS ROM 26 which contains expansion BIOS for initializing adapter card 24 during the start-up of the system. System 10 further includes a second hard disk drive 27 which is connected to adapter card 24. Disk drive 27 includes a RAM memory buffer 28, a disk drive controller 29, and disk drive firmware 30 stored within ROM 31 for controlling the operation of the hard disk drive 27. Hard disk drive 27 is electrically connected to adapter card 24 using ribbon cable 32. Both hard disk drives 19 and 27 are divided into cylinder, head sectors, and zones which preferably define each data sector within the hard disk drives 19 and 27.
The disk drive typically includes file system data, such as cluster data 104, and a directory data 106 so that the location of files can be accessed on the disk. The directory 106 translates the file name to a starting cluster 104. The cluster 104 translates the cluster 104 to a sector 102 where the actual file data is located.
The present invention provides an arrangement for the method of operating a mass memory storage peripheral computer device and a system including a mass memory storage peripheral computer device where the file system data is cached and used out of host computer RAM instead of from the mass memory storage peripheral computer device.